With the proliferation of 3D graphics hardware for desktop computers and the increasing sophistication and power of 3D software, especially in the character combat genre of games, superior methods of character control and manipulation are desired and required as compared to the current joystick, keyboard, and mouse. The current peripheral input devices are inadequate for several reasons. First, a user must learn and remember a separate set of commands for each game or software program. For example, the “Up” arrow key may move the user forward in one game whereas the “F” key may do the same in another. This is cumbersome and burdensome for the user. Secondly, there is no logical correlation between pressing a key or button and directing movement, camera angle, or pointing on a display. It is more natural to the user, and would enhance psychological immersion into playing a game, if the user can control movement in the game by physically moving a part of their body in a similar direction in real time.
Ideally, a user would prefer to control a game character to navigate in 3D space or change what the character sees in as similar a manner as possible to controlling the movement of their own head or other part of their body. Also, it would be of a great benefit if the navigational and perspective changing method could free up the user's hands for other, simultaneous input. For example, if the user could move their character without the use of the hands, then their hands could be used for combat-type input on a keyboard, game controller, or other input device.
Prior 3D head input systems suitable for computer cursoring or game control have relied on detection of signals transmitted from a head-mounted unit to a detection unit in order to calculate the position and/or orientation of the head. For example, in U.S. Pat. No. 5,367,614 to Bisey, ultrasonic sensors arranged in a triangular configuration around a computer monitor measure the arrival times of a pulse signal transmitted from a head unit in order to compute relative distances of the head unit along 3 axes and use the computed data to rotate a 3D image on the screen in the same way the user would move their head to view an object in nature. In U.S. Pat. No. 5,574,836 to Broemmelsiek, detection of the head shift of a user by an ultrasonic or infrared detector is used to generate a corresponding parallax or perspective shift in the display of a 3D object. In U.S. Pat. No. 5,926,264 to Beale, a 4-division photosensor array detects the relative intensities of a light beam from a source LED reflected by a head-mounted reflector in order to derive the orientation of the user's head and correspondingly control a pointer on a computer screen.
These prior 3D head input systems have typically relied on detection of relative light beam intensities or arrival times of transmitted signals from a head unit to a receiver unit in order to calculate by standard triangulation algorithms the relative position coordinates and/or relative angular orientation of the user's head. Such “one-way” transmitter/receiver detection systems have the limitation that they can be used to compute the head unit's position or its orientation, but not both at the same time with accurate results. Computational tradeoffs are made to obtain primarily position information or orientation information, but cannot obtain accurate information in “six degrees” of freedom, i.e., on linear axes (X, Y, Z) and rotational axes (yaw, pitch, roll) at the same time. More complex systems have been devised for accurate 6-degrees-of-freedom (so-called 6DoF) calculations, but these have required expensive and complex equipment for optical scanning of a three-dimensional target array worn or held by the user from multiple camera angles, e.g., as described in U.S. Pat. Nos. 5,889,505 to Toyama, 5,884,239 to Romanik, 5,461,478 to Sakakibara, 5,227,985 to DeMentheon, 5,187,540 to Morrison, and 4,649,504 to Krouglicof et al.
It has become important with increasing sophistication of 3D games and other environments (such as computer aided design (CAD), simulation, or virtual reality environments) for the user to be able to change movement or position within the environment (X, Y, Z coordinate location within the 3D world) and also to control and change the field-of-view within the environment (often referred to as “camera angle”). Also of importance is the ability of the user to perform such navigational or change of camera angle functions while keeping their hands free for manipulation tasks within the environment. For example, in CAD design, a design engineer may need to move the view around a displayed object while at the same time using a mouse or commands from a keyboard to add, delete, or modify components with the object. As computing power continues to increase while costs decrease for increasingly sophisticated 3D applications programs in an expanding range of environments, an accurate, low-cost, 3D navigation system with 6DoF control suitable for “hands free” computer input is increasingly needed.